"""
JSON测试数据读取模块

用于读取和解析JSON格式的测试数据文件，
支持按key获取对应的测试数据列表。
"""

import json
from config.config import cm
from utils.logger import log


class ReadJson:
    """
    JSON文件读取器类
    
    提供对JSON格式测试数据文件的读取功能，
    支持获取特定key的测试数据集。
    """
    
    def __init__(self, json_file):
        """
        初始化JSON文件读取器
        :param json_file: JSON文件路径
        """
        self.json_file = json_file

    def read_json(self, key):
        """
        读取JSON文件中指定key的测试数据
        :param key: 数据分组的key
        :return: 测试数据列表
        """
        try:
            with open(self.json_file, "r", encoding="utf-8") as f:
                datas = json.load(f)
                
            # 获取指定key的数据
            value = datas.get(key)
            if value is None:
                log.error(f"JSON文件中未找到key: {key}")
                return []
            
            log.info(f"成功读取JSON测试数据，key: {key}，数据条数: {len(value)}")
            return value
            
        except FileNotFoundError:
            log.error(f"测试数据文件不存在: {self.json_file}")
            return []
        except json.JSONDecodeError:
            log.error(f"JSON格式解析错误: {self.json_file}")
            return []
        except Exception as e:
            log.error(f"读取JSON数据失败: {str(e)}")
            return []


# 创建测试数据读取实例
test_baidu_json_file = cm.test_baidu_json_file
json_para = ReadJson(test_baidu_json_file)

# 读取百度测试数据
baidu_para = json_para.read_json('baidu')

